The CAVE (recursive acronym for “CAVE Automatic Virtual Environment”) was created by one of the named inventors of the present invention (Cruz Neira) in 1992 at the University of Illinois at Chicago. The CAVE is an immersive virtual reality (VR) apparatus that uses projectors on three to six independent surfaces to create a “room” where imagery can be projected onto the walls, ceiling, and/or floor. The projectors may use front or back projection, and may be stereoscopic or monoscopic. Monoscopic projectors produce imagery that appears to be “painted” on the wall surfaces while stereoscopic projectors produce imagery that can appear in the same space where the observer (user) is standing or to extend beyond the walls.
For typical stereoscopic projectors, all viewers must wear some form of stereoscopic glasses. Active glasses are synchronized to the refresh rate of the projectors while passive glasses use polarized light to separate the eyes. Both are commonly used in CAVE implementations. Modernly, flat panel displays may also be used in lieu of projectors and can also be either stereoscopic or monoscopic but these have additional issues related to increased cost and minimizing the frames between displays.
If stereoscopy is used, typically one viewer within the projection space is tracked using a six degree-of-freedom (6DOF) tracking device and using the exact position and orientation of the tracked observer, all imagery on all projection surfaces is generated with the correct perspective for the eye point of the tracked observer. To achieve this, a number of coupled viewpoints are used equal to the number of projected surfaces. The camera position identifies the location and orientation of the viewpoint. For a 6-surface CAVE in a cubic configuration (for example), that camera must be split into 6 pairs of independent viewpoints (one viewpoint for each eye and one pair for each wall of the CAVE), each pair of viewpoints orthogonal to the others. Then each of the projectors must be synchronized if active stereoscopy is used.
Modern CAVE implementations are not designed and manufactured as integrated systems. They are a collection of independent components, customized for each buyer's physical space and budget, that are integrated by a vendor after manufacturing to work together. As such, they tend to be very large, heavy, cumbersome, and expensive. A modern CAVE can cost from $350,000 up to well over $1,000,000 depending on the number of screens required, the quality of projectors used, etc. They are typically driven by a computing cluster (more than one computer) therefore programming new applications is difficult because of the distributed nature of the computing architecture. Mirrors are often used to decrease the “throw distance” of a projector so that the projector may physically be in close proximity to the surface on which it is projecting. In short throw mode, most projectors need 3 to 8 feet from projector to screen. Using mirrors this can be decreased, however, each mirror surface decreases the brightness of the image as light is lost and increases the complexity of the system and the calibration process, therefore, it is advantageous to avoid the use of mirrors.
Typical projectors used in CAVEs are heavy and expensive, and they must be precisely configured and calibrated when setting up a CAVE apparatus. Conventional CAVE implementations include a basic frame (usually of some light but durable metal) to which the screens will attach. They also must have an external frame that can bear the weight of 3-6 large projectors and mirrors (if used).
The procedure to assemble and use a modern CAVE can take from two to three working days (usually more) and may require three to five trained people. A large portion of assembly time is spent in the calibration process. It also requires lifts and winches that are not part of the CAVE, but must be used to lift the heaviest components into place. Often, because of their size, the physical room that will house a CAVE must be customized to raise the ceiling (because CAVEs usually exceed standard ceiling heights) and also to add ventilation, air conditioning, and power to accommodate the computing cluster.
After assembling the internal frame for the projection screens and also the larger weight-bearing structure for the projectors, the screens are usually unrolled and snapped into place on the frame. The projectors can weigh from 400-500 lbs. each. A lift or winch is used to lift these up to the weight-bearing structure where they are secured with appropriate hardware. Many CAVEs are back-projected so mirrors are placed behind the screens so that an overhead projector pointed at the mirror will bounce once before projecting on the back of the installed screen. This is done for each projector in the configuration. The computing cluster is usually installed near the CAVE assembly, usually one computer per projector, or one graphics card per projector.
The calibration process can be demanding for a modern CAVE. The screens must be adjusted to minimize the gaps at the corners. Then a series of calibration patterns are projected onto each screen and adjustments are made for position, skew, color, stereo, and any other adjustable parameters on the projector. This is usually done manually and can take a full day to complete.
As stated above, if stereoscopy is used (which is extremely common, and usually required), a 6DOF tracker must be installed. This is a separate sub-system for most CAVE implementations. Developing applications that run on a CAVE requires integrating the tracker and the camera perspective calculations with the image generation. This is typically supported by a software development kit (SDK).
An SDK for developing CAVE applications is very limited due to the customized nature of all CAVES. In fact, the software framework for current CAVE systems would not be considered an SDK at all by today's developers. CAVEs usually include an old-style library of classes or they are operated with a graphics-interceptor software module that takes a single graphics stream and distributes it among all the computers in the system with small manipulations for perspective adjustment.
How the software operates will change based on how many projectors are used, the configuration of the screens, how many computers are in the cluster, the tracking system selected, and the use (or not) of stereoscopy. Most importantly, applications developed for one CAVE will not run in another CAVE or alternate VR system without significant adaptation to the source code. Lastly, many CAVEs allow for interactivity with displayed content. To accomplish this, a separate interaction device is employed. This can be a gamepad device, another 6DOF tracker (similar to the head-tracking device), a 6DOF wand-type device with buttons, or a hand-worn device with a 6DOF tracker. These devices are separately controlled via a serial input cable to one of the cluster computers.